package main

import "fmt"

func main() {
	//情况1
	/*
	//存储五个函数
	var funcList []func()

	for i:=0;i<5;i++{
		function := func(){
			fmt.Println(i)
		}
		funcList = append(funcList, function)

	}
	funcList[0]()	//5
	funcList[1]()	//5
	funcList[2]()	//5
	funcList[3]()	//5
	funcList[4]()	//5
	*/


	// 情况2
	//存储五个函数
	var funcList []func()

	for i:=0;i<5;i++{
		function := func(arg int) func(){
			return func(){
				fmt.Println(arg)
			}
		}(i)
		funcList = append(funcList, function)
	}
	funcList[0]()	//0
	funcList[1]()	//1
	funcList[2]()	//2
	funcList[3]()	//3
	funcList[4]()	//4
}